GWE IPv6のDHCP
問題名
IPv6のDHCP
問題文
概要
トラコン大学のすぐる先生は、ネットワークの授業でIPv6のDHCPをパケットキャプチャして見せたいと考えました。
ルーターOSではなく使い慣れたLinux 環境で行いたいと考えfrrを選定しました。
しかし、すぐる先生はfrrを触ったことがありません。
さらに、すぐる先生は学会で忙しいため、ゼミ生であるあなたに手順を調べてほしいとお願いしてきました。
DHCPの方法は、SLAAC・DHCPv6どちらでも構わないそうです。
ホスト dhcp-server
にfrrをインストールして、client
にIPv6アドレスを配布してあげて疎通確認できる状態までしてください。
アドレスレンジはは2001:db8::/64
を使用してください。
dhcp-server
とclient
のアドレス、手順を報告すること。
初期状態
- IPv6が何も設定されていない
終了状態
dhcp-server
がdhcpでclient
にipを配布し、pingを送ることができる
問題環境
dhcp-server
とclient
はIPv4によってアクセスができるが、一切IPv6などの設定がされていないプレーンなUbuntu22.04
解説
概要・作問意図
問題名が問題のすべてを表していて、単純にapt
などでfrrをインストールし、dhcp-server
に固定IPを振ってclient
にDHCPをする問題です。
ネットワークを勉強するのって実機がいるんじゃないか?となりがちなのでvyosだけでなくfrrというソフトウェアルーターがあることを知ってほしかった(のと、自分が触ってみたかった)からです。
dockerとfrrを利用して手元でネットワーク実験ができるtinet というソフトもあります。
仕組みなどを解説した動画もあるので、よければ。
解答手順
dhcp-server
にFRRをインストールする。
sudo apt install frr
vtysh
を起動してipv6を設定して、固定IP(本記事ではは2001:db8::1/64
とする)とSLAACの設定を入れる。
interface eth0
ipv6 address 2001:db8::1/64
ipv6 nd prefix 2001:db8::/64
no ipv6 nd suppress-ra
クライアントでは、/etc/netplan/01-netcfg.yaml
を以下のように書き換える。
- dhcp6: 'no'
+ dhcp6: 'yes'
変更を適用して、DHCPサーバーのVMと疎通をはかる。
sudo netplan apply # デフォルトルートの書き方が非推奨というwarningが出るが、無視する
ping 2001:db8::1
再起動後の挙動は指定していないので writeしてもしなくてもいいです。
採点基準
- frrがインストールされている: 50%
- IPv6のDHCPができている: 50%
参加者の解答例
- Docker でfrrを動かす aptで入れることもできますが
sudo docker run -d --net=host --cap-add=CAP_NET_ADMIN --cap-add=CAP_NET_RAW --cap-add=CAP_SYS_ADMIN --privileged frrouting/frr:v8.4.1
のように Docker で動作させているチームもいました。